Snowball_233

Snowball_233

A student who is learning coding.

サーバーのコアとJDKのリリースに過度に注意する必要はありません。

近期、苦力怕フォーラムのサーバープラグインセクションのグループ(グループ番号 332359582)で最も頻繁に尋ねられる質問は、「どのサーバーコアを選べばいいですか?Folia は使えますか?Oracle を使うべきですか?Zulu を使うべきですか?パフォーマンスレポートの分析には Spark を使うべきですか?Timing を使うべきですか?」など、実際には重要ではない質問です。

これらの質問を見た後、私は 1 つの問題に気づきました。私のワールドの開設コストが徐々に低下するにつれて、ますます多くの初心者がサーバーを開設しようとしています。彼らはサーバーをより良くしたいと考えていますが、そのためには間違ったことに焦点を当てています。本当のサーバーオーナーは、コンテンツ、バランス、コミュニティ、プレイヤーに焦点を当てる必要があります。次に、なぜ他のことに過度に注意しない方がいいのかを説明します。

サーバーコアの選択#

現在、市場には次のような Java サーバーコアがあります。

タイプ名前適用範囲
バニラVanillaMinecraft 公式サーバーコア、プラグインやモッドをロードできません
プラグインのみBukkit、Spigot、Paper、PurPur、Pufferfish、Foliaプラグインのみをロードできるサーバーコア、モッドをロードできません
モッドのみForge、Fabric、SpongeForgeモッドのみをロードできるサーバーコア、プラグインをロードできません
ミックスCatServer、Mohist、Banner、Arclightプラグインとモッドの両方を同時にロードできるサーバーコア

その中で最も議論の多いトピックは、「Folia を使うべきか?」です。この質問は、Folia がマルチスレッドで有名であることに触発されているようですが、Folia の公式ウェブサイトのサーバーコアの位置づけを再度読んでみましょう。

Foliaは、シングルスレッドで実行されるMinecraftサーバーの持続的なボトルネックに対処するために設計されています。それはPaperの完全な代替品ではありません。
---------
Foliaは、シングルスレッドで実行されるMinecraftサーバーの持続的なボトルネックに対処するために設計されています。それはPaperの完全な代替品ではありません。

この文をじっくり考えてみると、本当に Folia が必要なのかと思いませんか?「それは Paper の完全な代替品ではありません。」という短い文は、ゲームの体験、プラグインの互換性、安定性など、Paper サーバーコアとは大きく異なることを指摘しています。また、Folia は多くのオリジナルの機能を破壊してしまいます。本当に究極のパフォーマンスのためにこれらすべてを犠牲にする覚悟がありますか?

さらに、Folia の公式が推奨する設定を見てみましょう。

What hardware will Folia run best on?
Ideally, at least 16 cores (not threads).
---------
Foliaはどのようなハードウェアで最も良く動作しますか?
理想的には、少なくとも16コア(スレッドではありません)が必要です。

では、あなたのサーバーのハードウェア構成は本当に推奨された構成に達していますか?推奨された構成よりも低い状態でも、パフォーマンスが従来の Paper サーバーコアよりも優れていることをどのように保証しますか?

JDK の選択#

「JDK(Java Development Kit)は、開発者が使用するためのキットで、JDK には JRE(Java Runtime Environment)が含まれており、JVM(Java Virtual Machine)は JRE の一部です。すべての Java プログラムは JVM 上で実行されます。」

現在、Minecraft サーバーでよく使われる JDK のバージョンには、OpenJDK、Azul Zulu、GraalVM、Oracle JDK などがあります。

その中で、最も議論の多い OpenJDK と Azul Zulu の 2 つのバージョンを例にテストを行いました。テストスクリプトは以下の通りです。

クリックしてプレビュー
#! /bin/bash

JVM_OPENJDK=openjdk-17.0.2
JVM_ZULU=zulu17.34.19-ca-jdk17.0.3-linux_x64

sudo rm -rf /home/server/jdks/test/logs*

for JVM_NAME in $JVM_OPENJDK $JVM_TEMURIN $JVM_SEMERU $JVM_ZULU $JVM_ZING; do

    echo '========================================'
    echo "Start testing $JVM_NAME"
    echo '========================================'

    sudo rm -rf /home/server/jdks/test/world

    mkdir logs
    sudo nice -n -20 /home/server/jdks/$JVM_NAME/bin/java \
              -Xmx6G -Xms6G -Xlog:gc:logs/gc.log -Xlog:gc* \
              -jar server.jar nogui | tee logs/full.log

    chmod 777 -R /home/server/jdks/test/logs
    mv -v /home/server/jdks/test/logs /home/server/jdks/test/logs-$JVM_NAME

    echo '========================================'
    echo "Finish testing $JVM_NAME"
    echo '========================================'

done

テスト結果は以下の通りです。

JDKChunky の所要時間平均停止時間 /ms平均 GC 間隔 /s
OpenJDK9'01''50.68
Azul Zulu9'15''53.47

明らかに、最も議論の多い 2 つのバージョンでも、最終的なテスト結果はほとんど変わりません。実際の使用や体験では、その違いを感じるのは難しいでしょう。

結論#

以上から、サーバーコアや JDK の選択など、このような問題に過度に注意する必要はありません。代わりに、より多くの時間をゲームコンテンツの充実と最適化に費やすべきです。なぜなら、プレイヤーが本当に関心を持っているのは、ゲームの楽しさと体験であり、あなたがどの技術的な解決策を選んだかではありません。あなたのサーバーのコンテンツ構築により多くの時間を費やし、プレイヤーがより多くの楽しみと思い出を得られるようにしてください。

この記事はMix Spaceから xLog に同期されました。
元のリンクはhttps://blog.rescueme.life/posts/develop/donot-pay-too-much-attention-to-server-core-and-JDKです。


読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。